package com.zzwtec.validation;

import java.lang.annotation.Annotation;
import java.lang.reflect.Field;

/**
 * 校验框架注解解析器接口
 * 
 * 实现该接口构建解析器，理论上每一个注解都会对应一个解析器， 解析器需要在校验器中注册使用
 * @author 草原狼
 *
 */
public interface AnnotationValidator {
	
	/**
	 * 校验一个字段f的值是否符合基于value的某一个规则，并且把校验结果保存在ValidateResult中返回
	 * @param f
	 * @param value
	 * @return
	 */
	public ValidateResult validate(Field f, Object value);

	/**
	 * 获取验证器 名
	 * @return
	 */
	public String getName();

	/**
	 * 设置验证器名
	 * @param name
	 */
	public void setName(String name);
	
	/**
	 * 设置该验证器对应的注解
	 * @return
	 */
	public Class <? extends Annotation> getAnnotationClass();
	
}
